package jm.nj.demo06main.demo06;

import com.sun.org.apache.xpath.internal.SourceTree;
import org.omg.PortableInterceptor.INACTIVE;

/*
* 基本类型的包装类:
 * Integer 类在对象中包装了一个基本类型 int 的值
 * 给基本数据类型增加了属性了方法
 *
 * int -->Integer
 * char-->Character
 * 其它的:首字母
* */
public class DemoInteger {
    public static void main(String[] args) {
        //method_01();
        //method_02();
        method_03();
    }
/*
* 基本数据类转换为包装类
* 1.Interger
* Integer(int value) 构造一个新分配的 Integer 对象，它表示指定的 int 值。
		Integer(String s)  构造一个新分配的 Integer 对象，它表示 String 参数所指示的 int 值。
* 2.valueOf方法
		static Integer valueOf(int i) 返回一个表示指定的 int 值的 Integer 实例。
		static Integer valueOf(String s) 返回保存指定的 String 的值的 Integer 对象。
把包装类转换为基本数据类型
		 int intValue()  以 int 类型返回该 Integer 的值
*
* */
    private static void method_03() {
        //基本-->包装类
        Integer i1 = new Integer(100);
        System.out.println(i1);

        Integer i2 = new Integer("100");
        System.out.println(i2);

        Integer i3 = Integer.valueOf(100);
        System.out.println(i3);

        Integer i4 = Integer.valueOf("100");
        System.out.println(i4);

        //把包装类--->基本数据类型
        int i = i1.intValue();
        System.out.println(i);
    }

    /*
* 将基本数值转成字符串有 3 种方式：
* 1.任意类型+"",结束是一个字符串
* 2.Integer类静态方法:static String toString(int i)  返回一个表示指定整数的String对象
* static String toString(int i, int 进制) 返回用第二个参数指定基数表示的第一个参数的字符串表示形式。
 * 	将 int 整数,转成指定的进制数 0-9A-Z
 * 3.String类静态方法:static String valueOf(int i)返回int参数的字符串表示形式
* */
    private static void method_02() {
        String s1 = 11+"";
        System.out.println(s1+22);

        String s2 = Integer.toString(100);
        System.out.println(s2+200);

        String s3 = String.valueOf(true);
        System.out.println(s3+100);
    }

    /*
* 把字符串格式的基本数据类型,转换为基本数据类型
*
* */
    private static void method_01() {
        /*
        * static int parseInt(String s) 把一个字符串格式的整数,转换为基本数据类型的整数
        * 注意:字符串必须是一个整数
        * */
        int i= Integer.parseInt("100");
        i++;
        System.out.println(i);

        i= Integer.parseInt("-100");
        System.out.println(i--);
        System.out.println(i);
        System.out.println(Double.parseDouble("8.88"));
//.NumberFormatException: For input string: "abc"
        //System.out.println(Integer.parseInt("abc"));
    }
}
